در پروژههای اپنسورس پلتفورمهایی نظیر GitHub و Bitbucket h ، بهرهبرداری از Git رواج بسیار دارد. برای استفاده از Git در برنامهنویسی لازم است کدها و دستورات لازم برای اجرای یک ابزار خط فرمان (CLI) را بیاموزید. یکی از مزایای Git این است که مستندات بسیار قدرتمندی را برای یادگیری سریعتر و آسانتر آن در اختیارتان قرار میدهد. در این مقاله قصد داریم با پر کاربردترین دستورات یا کدهای فرامین Git برای ایجاد تغییرات، بررسی و ایجاد ارتباط با مخازن دوردست و غیره شما را آشنا کنیم.
ابزارهای پرکاربرد Git
بیشتر برنامه نویسان و کد نویسان از Git بعنوان خط فرمان استفاده میکنند چون سرعت و عملکرد آن بسیار بالاتر است.
نکته:
تنها زمانی امکان بهره برداری از Git را دارید که فرامین آن را بشناسید. Git دارای چندین GUI client است که اگر ترجیح میدهید تنها با یک رابط گرافیکی کار کنید، میتوانید از آنها استفاده کنید. میتوانید از طریق وب سایت رسمی Git، ابزار خط فرمان Git را برای هر سه سیستم عامل اصلی ویندوز، لینوکس و مک، دانلود کنید.
مهم ترین فرامین Git برای برنامه نویسان وب
در ادامه بخشی از پر کاربردترین دستورات و فرامین GIT را که در برنامه نویسی صفحات وب مورد استفاده قرار میگیرد، مورد بررسی قرار میدهیم.
پیکربندی Git
پس از نصب Git، یکی از مهمترین و بهترین آیتمهای آن، پیکربندی کلیست. برای پیکربندی اولیه Git ، فقط به دو فرمان نیاز دارید که یکی نام مؤلف و دیگری ایمیل مؤلف را ثبت میکند. پس از آن، Git تمام تغییراتی را که در این دو مورد ایجاد میکنید، ذخیره خواهد کرد:
git config --global user.name "Jane Doe"
git config --global user.email jane.doe@example.com
خط اول پیکربندی نام و خط دوم پیگربندی آدرس ایمیل مولف را بر عهده دارد.
ایجاد یک Git Repository
پس از آن که Git CLI را روی سیستم نصب کردید به فایلی که میخواهید از آن به عنوان پوشه پروژه Git خود استفاده کنید (به آن repository یا repo هم گفته میشود)، بروید. وقتی داخل این پوشه هستید، کد زیر را در خط فرمان تایپ کنید:
git init
به این علت که repo شما شروع به کار کرده است Git شروع به ثبت و رهگیری تغییراتی میکند. اگر نگاهی به فایل منیجر خود بیاندازید یک پوشه جدید به نام .git
را در آن مشاهده خواهید کرد. این یک پوشه مخفی است که Git پیکربندیهای خود را در آن ذخیره میکند.
بررسی وضعیت Repo
هر زمان که بخواهید میتوانید با استفاده از فرمان زیر، وضعیت repository خود را چک کنید:
git status
سه حالت برای فایلهای درون پوشه پروژه Git شما وجود دارد:
- staged
- committed
- modified
در لغات اختصاصی Git، پس از آنکه فایلها را به ناحیه staging اضافه کردید، فایلها به صورت staged در می آید تا بعدا برای commit آماده شوند. پس از آنکه یک عکس (Image) از فایلها در دیتابیس local در داخل پوشه .git
ذخیره شد، به صورت committed در میآیند. و در نهایت چنانچه تغییراتی در آنها ایجاد کنید اما هنوز آن تغییرات را commit نکرده باشید، در حالت modified قرار میگیرند:
نمایش فایل ها
با درج فرمان زیر در خط فرمان، فایلهایی را به ناحیه نمایش یا staging اضافه کنید:
git add index.html style.css images
این فرمان، index.html
و فایل های style.css
و پوشه images
را نمایش میدهد. پس از فرمان git add
، میتوانید به آسانی تمام فایلها و پوشههایی که میخواهید رهگیری کنید اضافه کنید. اگر در دایرکتوری که مشغول کار هستید، میخواهید تمام فایلها و پوشهها را از نمایش خارج کنید، میتوانید از فرمان زیر استفاده کنید:
git add .
اگر دایرکتوری بزرگی داشته باشید، با استفاده از این فرمان می توانید تمام فایلها را به صورت یکباره اضافه کنید و بعد، فایلهایی را که نمی خواهید نمایش یابند، حذف کنید.
Unstge کردن فایل ها
میتوانید خیلی راحت فایلها را از ناحیه staging حذف کنید:
git rm --cached index.html style.css
اگر میخواهید پوشهها را هم حذف کنید باید یک پرچم –r
هم به فرمان اضافه کنید:
git rm --cached -r images
فرمان بالا پوشه images
را از ناحیه نمایش حذف میکند. Git دارای پیامهای خطای کارامدی است و همچنین خیلی راحت میتوان همه چیز را به حالت قبل برگرداند. برای حذف تمام فایلها و پوشهها از ناحیه staging، میتوانید از فرمان کوتاه زیر استفاده کنید:
git rm --cached -r .
این فرمان مانند فرمانی است که در زمان افزودن تعداد زیادی فایل به ناحیه staging از آن استفاده میکنید.
مشارکت فایل های staged
در تمام مراحل فرایند توسعه میتوانید یک عکس را از ناحیه staging ذخیره کنید. این عکس commit نام داشته و هر زمان که بخواهید، میتوانید به آن برگردید:
git commit -m "Initial commit"
فرمان بالا حالت فعلی ناحیه staging را تثبیت میکند. توجه داشته باشید که همیشه باید یک پیغام commit یا تثبیت هم اضافه کنید. ما در این مثال از "initial commit" استفاده کردیم که برای ثبیت اولیه پیام مناسبی است. برای کارامد کردن Git repo بهتر است همیشه از یک پیغام commit استفاده کنید که به درستی و به صورت خلاصه تغییراتی که از آخرین تثبیت ایجاد کردهاید را توصیف کند.
نمایش تغییرات stage نشده به صورت کامل
اگر میخواهید تمام تغییراتی که در git repo ایجاد کردهاید را ببینید، میتوانید با تایپ کردن فرمان زیر در خط فرمان، تمام آنها را به صورت لیست مشاهده کنید:
git diff
این فرمان نه تنها نام فایلها بلکه تغییرات انجام شده در محتوای آنها را هم (در فرمت متنی) باز میگرداند. فرمان git diff
به نشانه گذاری افزوده ها با علامت +++ در ابتدای خط پرداخته و در عین حال علامت --- را حذف میکند.
نمایش تاریخچه کامل commit
Git این امکان را به شما می دهد کهتاریخچه کامل commit را در حین فرآیند توسعه ایجاد کنید. برای این کار میتوانید از فرمان زیر استفاده کنید:
git log
این فهرست حاوی شناسه یا ID، مولف، تاریخ و پیام هر commit است.
همانند سازی یک repo ریموت
استفاده از Git به همراه GitHub یا یک repository آنلاین دیگر، یکی از موارد مصرف رایج Git است. میتوانید با استفاده از همانند سازی آن در کامپیوتر خود، یک کپی لوکال از repo ریموت ایجاد کنید:
git clone https://www.github.com/your-online-repo
پیش از آنکه عمل همانند سازی را اجرا کردید، به پوشهای بروید که میخواهید Git repo جدید را در آن ذخیره کند.
ایجاد ارتباط با یک repo ریموت
شما نه تنها میتوانید یک repo ریموت را در کامپیوتر خود کپی کنید بلکه میتوانید فرآیند را به صورت معکوس انجام دهید. برای کپی کردن یک repo لوکال در یک سرور آنلاین مثل GitHub، ابتدا باید یک ارتباط با repo ریموت ایجاد کرده و سپس repo لوکال را به سرور انتقال دهیم:
git remote add origin https://www.github.com/your-online-repo
با فرمان بالا میتوانید repo ریموت خود را به کپی لوکالی که ایجاد کردهاید، متصل کنید. در آینده مجبور به تایپ url کامل نیستید و میتوانید با استفاده از نام origin (یا هر نامی که میخواهید) به آن اشاره کنید. همچنین، میتوانید url ریموت جدید را با استفاده از فرمان زیر، اعتبارسنجی کنید:
git remote -v
این فرمان کار زیادی انجام نمیدهد فقط url تازه ثبت شده را باز میگرداند تا بتوانید آن را چک کنید.
افزودن تغییرات لوکال به repo ریموت
پس از آنکه بین repoهای لوکال و ریموت، ارتباط ایجاد شد، میتوانید تغییرات را به صورت آنلاین و با استفاده از فرمان زیر انتقال دهید:
git push origin master
کلمه کلیدی origin نشانه repo ریموت و کلمه master نشانه repo لوکال است. اگر روی شاخه master نیستید باید از نام آن شاخه استفاده کنید. به راحتی میتوانید شاخهای که در آن قرار دارید را پیدا کنید چون خط فرمان نام شاخه را در کنار نام repo نمایش میدهد. ممکن است Git پس از اجرای انتقال تغییرات از شما نام و کلمه عبور GitHub را سوال کند.
واکشی تغییرات اخیر در repo ریموت
اگر از قبل ارتباط با repo ریموت را ایجاد کردهاید و فقط میخواهید تغییراتی که دیگران ایجاد کردهاند را به دست آورید، نیازی به همانند سازی مجدد repo ندارید. فقط باید تغییرات را با استفاده از فرمان زیر واکشی کنید:
git fetch origin
فرمان git fetch
فقط تغییرات را در اختیار شما قرار میدهد اما آنها را در repo لوکال ادغام نمیکند. اگر نام دیگری به جز origin برای repo ریموت ثبت کردهاید از آن نام استفاده کنید.
ادغام تغییرات واکشی شده
وقتی مطمئن شدید تغییراتی که از repo ریموت واکشی شده هیچ مشکلی ندارند میتوانید آنها را در repo لوکال ادغام کنید. برای این کار میتوانید از فرمان زیر استفاده کنید:
git merge origin/master
برای ادغام همیشه باید نام شاخهای را که میخواهید به آن ادغام کنید، اضافه کنید. برای مثال، در فرمان بالا، origin/master
به شاخه master از origin اشاره دارد. فراموش نکنید که قبل از ادغام، همیشه باید تغییرات را با استفاده از فرمان git fetch
واکشی کنید.